package ui;

import animal.Kaefer;

/**
 * Stellt ein einfaches Grafikobjekt dar, das auf dem Anzeigefeld angezeigt
 * werden kann. Das Koordinatensystem wird in der Klasse Anzeigefeld erklaert.
 * 
 * ACHTUNG: Diese Klasse darf nur mit viel internem Wissen veraendert werden!!
 * Unzulaessige Aenderungen fuehren dazu, dass das Projekt nicht mehr laeuft. Daher
 * bitte diese Klasse gar nicht aendern!
 * 
 * Jede von Euch erstellte Klasse, die ein grafisches Objekt repraesentiert, muss
 * genau die privaten Felder besitzen, die auch diese Klasse besitzt. Ebenso muessen
 * Getter und Setter fuer diese Felder vorhanden sein.
 * 
 * @author Michael Schoell, Simone Huber
 */
public class Grafikobjekt {

	private double x;
	private double y;
	private double drehung;
	private String grafik = "";
	//private int z = 0;
	private String beschriftung = "";
	
	
	/**
	 * Gibt die Drehung dieses Objekts im Bogenmass zurueck.
	 * 
	 * @return die Drehung
	 */
	public double getDrehung() {
		return drehung;
	}


	/**
	 * Gibt die Grafikdatei als String zurueck, die diesem Objekt zugeordnet ist.
	 * Existiert diese Datei nicht, so wird dieses Objekt beim Zeichnen nicht
	 * gezeichnet und eine Meldung auf der Konsole ausgegeben.
	 * 
	 * @return die Grafikdatei
	 */
	public String getGrafik() {
		return grafik;
	}

	/**
	 * Gibt die X-Position dieses Objekts zurueck. Die Position bezieht sich auf
	 * den Mittelpunkt dieses Objekts.
	 * 
	 * @return die X-Position
	 */
	public double getX() {
		return x;
	}

	/**
	 * Setzt die X-Position dieses Objekts. Die Position bezieht sich auf den
	 * Mittelpunkt dieses Objekts.
	 * 
	 * @param x
	 *            die X-Position
	 */
	public void setX(double x) {
		this.x = x;
	}

	/**
	 * Gibt die Y-Position dieses Objekts zurueck. Die Position bezieht sich auf
	 * den Mittelpunkt dieses Objekts.
	 * 
	 * @return die Y-Position
	 */
	public double getY() {
		return y;
	}

	/**
	 * Setzt die Y-Position dieses Objekts. Die Position bezieht sich auf den
	 * Mittelpunkt dieses Objekts.
	 * 
	 * @param y
	 *            die Y-Position
	 */
	public void setY(double y) {
		this.y = y;
	}

	/**
	 * Setzt die Datei, in der sich die Grafik fuer dieses Objekt befindet.
	 * Existiert diese Datei nicht, so wird dieses Objekt beim Zeichnen nicht
	 * gezeichnet und eine Meldung auf der Konsole ausgegeben.
	 * 
	 * @param grafik
	 *            die Grafikdatei
	 */
	public void setGrafik(String grafik) {
		this.grafik = grafik;
	}

	/**
	 * Setzt die Drehung des Grafikobjekts. Der Parameter drehung gibt den
	 * Winkel im Bogenmass gegen den Uhrzeigersinn an, um den das Objekt gedreht
	 * werden soll. Auch Winkel ueber 2*Math.PI und negative Winkel sind moeglich.
	 * 
	 * @param drehung
	 *            Der Drehungswinkel im Bogenmass
	 */
	public void setDrehung(double drehung) {
		this.drehung = drehung;
	}

	/**
	 * Setzt die Beschriftung des Objekts.
	 * 
	 * @param beschriftung
	 *            die Beschriftung
	 */
	public void setBeschriftung(String beschriftung) {
		this.beschriftung = beschriftung;
	}

	/**
	 * Gibt die Beschriftung zurueck.
	 * 
	 * @return die Beschriftung
	 */
	public String getBeschriftung() {
		return beschriftung;
	}

	/**
	 * Gibt eine Stringrepraesentation des Grafikobjekts zurueck.
	 * 
	 * @return eine Stringrepraesentation
	 */
	public String toString() {
		return "Grafikobjekt an (" + getX() + "," + getY() + ") mit Winkel "
				+ getDrehung()*180.0/Math.PI + " Grad und Beschriftung "+beschriftung;
	}


	public boolean verspeisenDesKaefersMoeglich(Kaefer k) {
		// TODO Auto-generated method stub
		return false;
	}
}
